﻿using System;
using System.Collections.Generic;
using System.Runtime.Serialization;
using System.Text;
using System.Xml.Linq;

namespace Ocean.His.MedicalInsurance
{
    /// <summary>
    /// 
    /// </summary>
    [DataContract]
    public class SI2505Data
    {
        /// <summary>
        /// 人员编号
        /// 参数类型：字符型
        /// 参数长度：30
        /// 代码标识：
        /// 是否必填：Y
        /// 
        /// </summary>
        [DataMember(Name = "psn_no")]
        public string PsnNo { get; set; }

        /// <summary>
        /// 联系电话
        /// 参数类型：字符型
        /// 参数长度：50
        /// 代码标识：
        /// 是否必填：
        /// 
        /// </summary>
        [DataMember(Name = "tel")]
        public string Tel { get; set; }

        /// <summary>
        /// 联系地址
        /// 参数类型：字符型
        /// 参数长度：200
        /// 代码标识：
        /// 是否必填：
        /// 
        /// </summary>
        [DataMember(Name = "addr")]
        public string Addr { get; set; }

        /// <summary>
        /// 业务申请类型
        /// 参数类型：字符型
        /// 参数长度：3
        /// 代码标识：Y
        /// 是否必填：Y
        /// 
        /// </summary>
        [DataMember(Name = "biz_appy_type")]
        public string BizAppyType { get; set; }

        /// <summary>
        /// 开始日期
        /// 参数类型：日期型
        /// 参数长度：
        /// 代码标识：
        /// 是否必填：Y
        /// 
        /// </summary>
        [DataMember(Name = "begndate")]
        public string Begndate { get; set; }

        /// <summary>
        /// 结束日期
        /// 参数类型：日期型
        /// 参数长度：
        /// 代码标识：
        /// 是否必填：
        /// 
        /// </summary>
        [DataMember(Name = "enddate")]
        public string Enddate { get; set; }

        /// <summary>
        /// 代办人姓名
        /// 参数类型：字符型
        /// 参数长度：50
        /// 代码标识：
        /// 是否必填：
        /// 
        /// </summary>
        [DataMember(Name = "agnter_name")]
        public string AgnterName { get; set; }

        /// <summary>
        /// 代办人证件类型
        /// 参数类型：字符型
        /// 参数长度：6
        /// 代码标识：Y
        /// 是否必填：
        /// 
        /// </summary>
        [DataMember(Name = "agnter_cert_type")]
        public string AgnterCertType { get; set; }

        /// <summary>
        /// 代办人证件号码
        /// 参数类型：字符型
        /// 参数长度：50
        /// 代码标识：
        /// 是否必填：
        /// 
        /// </summary>
        [DataMember(Name = "agnter_certno")]
        public string AgnterCertno { get; set; }

        /// <summary>
        /// 代办人联系方式
        /// 参数类型：字符型
        /// 参数长度：30
        /// 代码标识：
        /// 是否必填：
        /// 
        /// </summary>
        [DataMember(Name = "agnter_tel")]
        public string AgnterTel { get; set; }

        /// <summary>
        /// 代办人联系地址
        /// 参数类型：字符型
        /// 参数长度：200
        /// 代码标识：
        /// 是否必填：
        /// 
        /// </summary>
        [DataMember(Name = "agnter_addr")]
        public string AgnterAddr { get; set; }

        /// <summary>
        /// 代办人关系
        /// 参数类型：字符型
        /// 参数长度：3
        /// 代码标识：Y
        /// 是否必填：
        /// 
        /// </summary>
        [DataMember(Name = "agnter_rlts")]
        public string AgnterRlts { get; set; }

        /// <summary>
        /// 定点排序号
        /// 参数类型：字符型
        /// 参数长度：3
        /// 代码标识：
        /// 是否必填：Y
        /// 
        /// </summary>
        [DataMember(Name = "fix_srt_no")]
        public string FixSrtNo { get; set; }

        /// <summary>
        /// 定点医药机构编号
        /// 参数类型：字符型
        /// 参数长度：12
        /// 代码标识：
        /// 是否必填：Y
        /// 
        /// </summary>
        [DataMember(Name = "fixmedins_code")]
        public string FixmedinsCode { get; set; }

        /// <summary>
        /// 定点医药机构名称
        /// 参数类型：字符型
        /// 参数长度：200
        /// 代码标识：
        /// 是否必填：Y
        /// 
        /// </summary>
        [DataMember(Name = "fixmedins_name")]
        public string FixmedinsName { get; set; }

        /// <summary>
        /// 备注
        /// 参数类型：字符型
        /// 参数长度：500
        /// 代码标识：
        /// 是否必填：
        /// 
        /// </summary>
        [DataMember(Name = "memo")]
        public string Memo { get; set; }

    }

    /// <summary>
    /// 
    /// </summary>
    [DataContract]
    public class SI2505InputModel
    {
        [DataMember(Name = "data")]
        public SI2505Data SI2505Data { get; set; }
    }

    /// <summary>
    /// 2505
    /// 人员定点备案
    /// </summary>
    [DataContract]
    public class SI2505RequestModel : SIBaseRequestModel
    {
        /// <summary>
        /// 交易输入
        /// </summary>
        [DataMember(Name = "input")]
        public SI2505InputModel Input { get; set; }

        public SI2505RequestModel(MedicalInsuranceOption medicalInsuranceOption,
            SI2505Data si2505Data) : base(medicalInsuranceOption)
        {
            Infno = "2505";
            Input = new SI2505InputModel();
            Input.SI2505Data = si2505Data;
        }
    }
}
